package org.ragdollcat.first.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.ragdollcat.first.common.BaseResponse;
import org.ragdollcat.first.common.ResultUtils;
import org.ragdollcat.first.exception.ErrorCode;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/")
@Api(tags = "心跳检测controller")
public class MainController {

    /**
     * 服务健康检查接口
     * 用于监控系统或第三方服务检测当前服务是否正常运行
     * 通常被用于K8s、Nacos等服务注册中心的健康探针
     *
     * @return BaseResponse<String> 统一响应体
     *         - 成功时返回状态码200和消息"ok"
     *         - 若服务异常，会被全局异常处理器捕获并返回对应错误信息
     */
    @GetMapping("/health")
    @ApiOperation(value = "服务健康检查", notes = "检查服务是否正常运行，正常返回'ok'")
    @ApiResponses({
            @ApiResponse(code = 0, message  = "服务正常运行"),
            @ApiResponse(code = 500, message  = "服务内部错误")
    })
    public BaseResponse<String> health() {
        // 实际生产环境中可添加更复杂的检查逻辑
        // 例如：数据库连接检测、缓存服务连通性等
        return ResultUtils.success("ok");
    }
}
